/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GetData;

/**
 *
 * @author THIENSUHACK
 */
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharsetFilter implements Filter
{
	private String encoding;   
 
    @Override
	public void init(FilterConfig config) throws ServletException
	{
		encoding = config.getInitParameter("requestEncoding");
		if( encoding==null ) encoding="UTF-8";
	 }
    @Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain  next)   throws IOException, ServletException
	{
		// Respect the client-specified character encoding
		// (see HTTP specification section 3.4.1)
		if(null == request.getCharacterEncoding())
			request.setCharacterEncoding(encoding);
		/** * Set the default response content type and encoding */
		response.setContentType("text/html; charset=UTF-8");
		response.setCharacterEncoding("UTF-8");
		next.doFilter(request, response);
		}
 
	@Override
	public void destroy() {}
        public String toUTF8(String isoString)
         {
          String utf8String = null;
          if (null != isoString && !isoString.equals(""))
          {
           try
           {
            byte[] stringBytesISO = isoString.getBytes("ISO-8859-1");
            utf8String = new String(stringBytesISO, "UTF-8");
           }
           catch(UnsupportedEncodingException e)
           {
            //  TODO: This should never happen. The UnsupportedEncodingException
            // should be propagated instead of swallowed. This error would indicate
            // a severe misconfiguration of the JVM.

            // As we can't translate just send back the best guess.
            System.out.println("UnsupportedEncodingException is: " +
        e.getMessage());
            utf8String = isoString;
           }
          }
          else
          {
           utf8String = isoString;
          }
          return utf8String;
         } 
}